//此文件用于存放一些使用次数较多的工具函数
import {
  alterOrderStatus
} from "../api/orderApi.js"
/**
 * 判断当前用户是否登录
 */
export function hasLogin() {
  let token = wx.getStorageSync('auth_token')
  return token.length > 0
}
/**
 * 弹出立即支付的选项框
 * @param {money} money 要支付的金额
 */
export function payNow(money, id) {
  return new Promise((resolve, reject) => {
    wx.showModal({
      title: '支付',
      content: '本次支付金额为:￥' + money,
      confirmText: "确认支付",
      success(res) {
        if (res.confirm) {
          console.log('用户点击确定')
          resolve()
        } else if (res.cancel) {
          console.log("用户点击了取消");
          //用户点击取消不改变订单状态
          reject("取消支付")
        }
      }
    })
  })
}
/**
 * 取消订单
 * @param {id} id 要取消的订单的id
 */
export function cancelOrder(id) {
  return new Promise((resolve, reject) => {
    alterOrderStatus(id, "handCancel").then((res) => {
      if (res.code === 2000) {
        console.log("取消订单成功");
        resolve("订单取消成功")
      } else {
        console.log("取消订单失败:", res);
        reject("取消订单失败")
      }
    }).catch(() => {
      console.log("取消订单出现异常");
      reject("取消订单失败")
    })
  })
}
/**
 * 显示取消订单原因的上拉菜单
 * @param {id} id 要取消的订单的id
 */
export function showCancelActionSheet() {
  return new Promise((resolve, reject) => {
    wx.showActionSheet({
      alertText: "选择取消订单原因,帮助我们改进", //警示文字在手机上显示,在开发工具中不显示
      itemList: ["不想买了", "收货地址填错了", "商品选错了/选多了/选漏了", "其他"],
      itemColor: '#4ed947',
      success(res) {
        console.log("调用上拉菜单成功:", res);
        let index = res.tapIndex
        if (index === 0||index===3) {
          console.log("不想买了或其他原因");
          //如果是不想买了或者其他原因,直接取消订单,然后调用页面根据返回值进入相应的页面
          resolve("cancelOrder")
        } else if (index === 1) {
          console.log("收货地址填错了");
          //如果是收货地址填错了,跳转到提交订单页面
          resolve("addressErr")
        } else if (index === 2) {
          console.log("商品选错了");
          //如果是商品选错了,将商品放回购物车,跳转到购物车页面
          resolve("goodsErr")
        }else{
          //没有取消订单
          resolve("none")
        }
      },
      fail(res) {
        console.log("调用上拉菜单失败:", res);
        reject(res.errMsg)
      }
    })
  })

}
/**
 * 从当前页面栈中查询指定的page对象
 * @param {route} route 要查询的页面的路由
 */
export function getTargetPage(pages,route) {
  for (let index = 0; index < pages.length; index++) {
    const element = pages[index];
    if (element.route===route) {
      console.log("找到了目标page对象");
      return element
    }
  }
  console.log("没有找到目标page对象");
}